# 使用官方的 Python 基础镜像
FROM python:3.9-slim

# 设置环境变量以防止 Python 写入 .pyc 文件并强制 stdout 和 stderr 不使用缓冲
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 设置工作目录
WORKDIR /code

# 替换默认的软件源为清华大学的镜像源
RUN [ -f "/etc/apt/sources.list.d/debian.sources" ] && sed -i 's/http:\/\/deb.debian.org\//https:\/\/mirrors.tuna.tsinghua.edu.cn\//g' /etc/apt/sources.list.d/debian.sources; true
RUN [ -f "/etc/apt/sources.list" ] && sed -i 's/http:\/\/deb.debian.org\//https:\/\/mirrors.tuna.tsinghua.edu.cn\//g' /etc/apt/sources.list; true
RUN [ -f "/etc/apt/sources.list" ] && sed -i 's/http:\/\/security.debian.org\//https:\/\/mirrors.tuna.tsinghua.edu.cn\//g' /etc/apt/sources.list; true

# 将 requirements.txt 复制到工作目录
COPY requirements.txt /code/

# 安装 Python 依赖
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 复制 Django 项目代码到工作目录
COPY . /code/
RUN rm -rf /code/datas/server
RUN rm -rf /code/datas/template

# 暴露 Gunicorn 将要监听的端口
EXPOSE 8000

RUN python manage.py collectstatic --noinput

# 使用 Gunicorn 启动 Django 应用
CMD ["gunicorn", "--chdir", "oqc_report_autogenerate", "oqc_report_autogenerate.wsgi:application", "--bind", "0.0.0.0:8000"]
